Unity之VideoPlayer组件

您所在的位置:网站首页 video loop 不循环播放 Unity之VideoPlayer组件

Unity之VideoPlayer组件

2023-08-25 18:18| 来源: 网络整理| 查看: 265

首先说下我想实现的效果,有一些视频,每一组都由2段视频组成:前一段播放一次(入场),然后接循环播放后一段(循环)

看代码:

private string tmpVideoLoop; private void PlayVideo(string videoLoop, string videoStart = null) { GetVP().loopPointReached -= PlayVideoLoop; if (GetVP().isPlaying) GetVP().Stop(); if (videoStart == null) { GetVP().url = videoLoop; GetVP().isLooping = true; GetVP().Play(); } else { this.tmpVideoLoop = videoLoop; GetVP().url = videoStart; GetVP().isLooping = false; GetVP().loopPointReached += PlayVideoLoop; } } private void PlayVideoLoop(VideoPlayer vp) { Debug.Log(vp.url); vp.loopPointReached -= PlayVideoLoop; GetVP().url = tmpVideoLoop; GetVP().isLooping = true; GetVP().Play(); }

1. GetVP() 方式是获取 VideoPlayer组件的一个封装方法,

2. PlayVideo(string videoLoop, string videoStart = null),通过URL的方式播放视频,传入两个视频的URL路径

videoLoop——用于循环的视频

videoStart——播放一次的视频

先略过 GetVP().loopPointReached -= PlayVideoLoop,首先如果当前VideoPlayer组件正在播放,那就先停止下,然后切换新的视频组,如果有传入videoStart,则先播放videoStart,并且注册上事件loopPointReached,当播完时开始播放videoLoop

再说说为什么要先加上一个注销事件GetVP().loopPointReached -= PlayVideoLoop,主动停止VideoPlayer的播放GetVP().Stop()也是会触发loopPointReached事件的,这也是一个坑,需要特别注意

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3